package com.easyadmin.annotation;

import com.easyadmin.entity.enums.OperModuleEnum;
import com.easyadmin.entity.enums.PermissionCodeEnum;
import org.springframework.web.bind.annotation.Mapping;

import java.lang.annotation.*;

/**
 *
 * @Description: 全局拦截器 包括 权限校验，日志，参数校验
 *
 * @auther: 多多洛
 * @date: 11:13 2020/12/6
 *
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface GlobalInterceptor {

    /**
     *  权限编码
     */
    PermissionCodeEnum permissionCode();


    /**
     * 操作模块
     *
     * @return
     */
    OperModuleEnum opObject() default OperModuleEnum.NO_OBJECT;

    /**
     * 操作描述
     *
     * @return
     */
    String opDescription() default "";

    /**
     * 参数校验
     */
    boolean verifyParam() default true;
}
